package com.hospital.common.vo.stat.module;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

@Data
@HeadRowHeight(20)  // 表头行高
@ContentRowHeight(16)  // 内容行高
public class StatVo {
    /**
     * 科室id
     */
    @Excel(name = "序号", fixedIndex = 0, width = 30)
    private Long departmentId;

    /**
     * 科室名称
     */
    @Excel(name = "科室名称", fixedIndex = 1, width = 30)
    private String department;

    /**
     * 统计开始日期
     */
    @Excel(name = "统计开始日期", fixedIndex = 2, width = 30)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statStartTime;

    /**
     * 统计截至日期
     */
    @Excel(name = "统计截至日期", fixedIndex = 3, width = 30)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime statEndTime;

    /**
     * 挂号总数
     */
    @Excel(name = "挂号总数", fixedIndex = 4, width = 30)
    private Integer totalRegistrations;

    /**
     * 退号患者数
     */
    @Excel(name = "退号患者数", fixedIndex = 5, width = 30)
    private Integer cancellations;

    /**
     * 退号率
     */
    @Excel(name = "退号率", fixedIndex = 6, width = 30)
    private Double cancellationsRation;

    /**
     * 统计创建日期
     */
    @Excel(name = "统计创建日期", fixedIndex = 7, width = 30)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * ai问诊覆盖率
     */
    @Excel(name = "ai问诊覆盖率", fixedIndex = 8, width = 30)
    private Double aiConsultCoveragePct;

    /**
     * 医生采纳ai诊断建议的比例
     */
    @Excel(name = "医生采纳ai诊断建议的比例", fixedIndex = 9, width = 30)
    private Double aiDiagnosisAcceptancePct;

    /**
     * 患者投诉总数
     */
    @Excel(name = "患者投诉总数", fixedIndex = 10, width = 30)
    private Integer comlaintsCount;

    /**
     * 患者投诉比例
     */
    @Excel(name = "患者投诉比例", fixedIndex = 11, width = 30)
    private Double comlatinsPct;

    /**
     * 总收入
     */
    @Excel(name = "总收入", fixedIndex = 12, width = 30)
    private Double outpatientRevenue;

    /**
     * 药物收入占比
     */
    @Excel(name = "药物收入占比", fixedIndex = 13, width = 30)
    private Double drugRevenueRatio;

    /**
     * 检查收入占比
     */
    @Excel(name = "检查收入占比", fixedIndex = 14, width = 30)
    private Double testRevenueRatio;
}